from utils.database import Database
import pytest
import os
from utils.config_parser import GetConfig
from config.config import SQL1,SQL2


@pytest.fixture(scope="session", autouse=True)
def destroy_data():
    yield
    # 使用with的方法，方便关闭连接对象
    # with Database() as db:
    #     db.execute_sql(SQL1, SQL2)
    # db = Database()
    # db.execute_sql(SQL1,SQL2)
    pass




# 通过 parser.addoption() 方法来注册新的命令行参数
# 注册的参数可以通过 config.getoption() 来获取
def pytest_addoption(parser):
    parser.addoption(
        "--env",
        action="store",
        default="test",
        help="运行时的环境配置参数"
    )


# 设置环境变量
def pytest_configure(config):
    env = config.getoption("--env")  # 获取参数传进来的值
    os.environ["ENV"] = env
    cfg = GetConfig()

    # 根据传进来的不同的参数读取配置文件，设置不同的环境变量
    # 环境变量必须是字符串，不能是字典
    if env == "test":
        os.environ["URL"] = cfg.get_base_url()
        os.environ["DATABASE"] = str(cfg.get_database_data())
    elif env == "sting":
        os.environ["URL"] = cfg.get_base_url()
        os.environ["DATABASE"] = str(cfg.get_database_data())
    elif env == "prod":
        os.environ["URL"] = cfg.get_base_url()
        os.environ["DATABASE"] = str(cfg.get_database_data())